home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (4th Edition) / The Business Master - 4th Edition.iso / files / utilstem / ebl312 / ebl407.exe / README2 < prev    next >
Text File  |  1992-01-15  |  12KB  |  320 lines

  1.  
  2.  
  3.         DEAR SHAREWARE USER AND POTENTIAL CUSTOMER:
  4.  
  5.  
  6.        We are happy  to provide you with this updated diskette.  In
  7.        this edition there  are several new functions based on ideas
  8.        from customers  like yourself, plus a few bug fixes. We look
  9.        forward to improving the product further to meet your needs.
  10.        Complete details of all changes are shown below.
  11.  
  12.        We  would  also  like to extend a  special  offer to  anyone
  13.        interested in further documentation.  The  entire  text from
  14.        "The EBL-Plus Language - Users Guide" is  included  in  this
  15.        distribution.  Simply  look  at  the  users  guide by typing
  16.        'VIEWBOOK  EBLBOOK'  at  the  system  command  prompt.  This
  17.        hypertext  guide allows you  to  quickly  browse  the entire
  18.        manual.    We're  sure  you  will  find  it  useful.   After
  19.        experiencing the power of EBL-Plus,  batch  files will never
  20.        be the same!
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.        DETAIL OF CHANGES TO EBL-PLUS
  28.  
  29.  
  30.        *   EBL 4.07
  31.  
  32.            -   Updated code which follows DOS's CALL chain to match
  33.                DOS5's characteristics.  (thanks  Arno  Krakauer and
  34.                George Szentirmai)
  35.  
  36.            -   Updated  code which closes  files  being  read  when
  37.                shelling. (Thanks Jim Fouch)
  38.  
  39.        *   EBL 4.06c
  40.  
  41.            -   Support added to recognize DOS 5.
  42.  
  43.            -   Added  flexability  when  GOTO  is  used   within  a
  44.                BEGIN/END block to avoid many block nesting errors.
  45.  
  46.            -   A bug was fixed to allow a ';' (semicolon) character
  47.                to be used at the end of all TYPE statements after a
  48.                WINDOW() function, just like  it can be used outside
  49.                of a window.
  50.  
  51.            -   The COLOR() function was enhanced to allow free-form
  52.                color names contained within variables. This feature
  53.                matches  the capability of the Professional EBL-Plus
  54.                compiler version 1.02 and later.
  55.  
  56.        *   EBL 4.05
  57.  
  58.            -   A minor  bug within the GOTO command caused it to be
  59.                slower than normal.  It now runs at full speed.
  60.  
  61.  
  62.  
  63.        Page     1
  64.  
  65.  
  66.            -   KEY(PRTSC) key is recognized and will properly print
  67.                the screen on the line printer when the  key is read
  68.                from the stack.  The  equivalent  key  value  within
  69.                BEGSTACK is \F0\01.
  70.  
  71.            -   Inline code can be placed in the  stack.  If you are
  72.                familiar with  assembly language  programming,  this
  73.                technique can  provide extra power within  the stack
  74.                in special  instances.  The executable code must  be
  75.                preassembled and the hex machine code must be placed
  76.                in  the  stack  using  BEGSTACK.  The  prefix within
  77.                BEGSTACK is \F0\02\ss\cc\cc\cc  ...  \cc where ss is
  78.                the size of the code in  bytes (0 to  255 bytes) and
  79.                cc is the hexadecimal value of each byte to execute.
  80.                The suffix \C3; must also be added. C3 is a near RET
  81.                instruction and  the ';'  prevents  an implied Enter
  82.                key from being stacked.  The registers  AX,  BX, CX,
  83.                DX, and  SI will be saved prior to execution and can
  84.                be   used  freely  as  temporary  storage.  The   DS
  85.                register will be the same  as  CS.  On  entry to the
  86.                inline code, AH=0 if the application is requesting a
  87.                keystroke,  and  AH=1 if  requesting keyboard status
  88.                (refer to BIOS Int  16h for more information). DS:SI
  89.                will  be set to the address of the inline code entry
  90.                point.  If SI  is zero  before  returning,  EBL will
  91.                allow  a  single  keystroke to be  gotten  from  the
  92.                hardware and the inline code will be reexecuted.  In
  93.                this case,  other items on the keyboard  stack  will
  94.                not  be  used  until  the  inline  code  returns  SI
  95.                non-zero.  The   code  must  be   fully  relocatable
  96.                without   any   absolute  addresses.  If  any  other
  97.                registers are used, they must be  saved and restored
  98.                within the inline code.
  99.  
  100.                Some examples: The following will create a beep when
  101.                executed within the stack.
  102.                BEGSTACK
  103.                \f0\02\06\b8\07\0e\cd\10\c3;
  104.                END
  105.  
  106.                It is  equivalent to the following assembly language
  107.                code
  108.                        Mov     Ax,0E07h
  109.                        Int     10h
  110.                        Ret
  111.  
  112.                The following will page eject the LPT1 printer
  113.                BEGSTACK
  114.                \f0\02\08\ba\00\00\b0\0c\cd\17\c3;
  115.                END
  116.  
  117.                and is equivalent to
  118.                        Mov     Dx,0
  119.                        Mov     Al,0Ch
  120.                        Int     17h
  121.                        Ret
  122.  
  123.                The   following   automatically   types   the   word
  124.                'ACCOUNT',  then  will  allow  3  keystrokes  to  be
  125.  
  126.  
  127.        Page     2
  128.  
  129.  
  130.                manually entered, then the enter key will be pressed
  131.                after this.
  132.                BEGSTACK
  133.                ACCOUNT;
  134.                \f0\02\12\EB\02\04\00\80\FC\00\75\05\FF\4C\02\74\03\BE\00\00\C3;
  135.  
  136.                END
  137.  
  138.                and the inline code is equivalent  to the following.
  139.                This  example demonstrates how local storage can  be
  140.                maintained  for  the inline code.  It also shows how
  141.                the stack  can  be  stopped  until  specific  events
  142.                occur,  in this case waiting for the application  to
  143.                request 3 keys.
  144.                        Jmp     short Me        ; Jump over local storage
  145.                        Dw      4               ; Define local counter
  146.                Me:     Cmp     Ah,0            ; Did App request a key?
  147.                        Jne     Restart         ; No, am counting just keys
  148.                        Dec     Word ptr [si+2] ; Decrement the count of keys
  149.                        Je      Done            ; Count is over?
  150.                Restart: Mov    Si,0            ; No, SI = 0 means restart
  151.                Done:   Ret                     ; Else continue & release stack
  152.  
  153.        *   EBL 4.04
  154.  
  155.            -   Corrected bug where drive letter was always required
  156.                for  the  updated  CHDIR()  function (e.g.  CHDIR("C
  157.                :\SUB"). It is now optional as it was intended (e.g.
  158.                CHDIR("\SUB").
  159.  
  160.            -   The  British   spelling   for   CENTRE()   was   not
  161.                implemented   correctly.   Now  both  CENTER()   and
  162.                CENTRE() perform the same function.
  163.  
  164.            -   A bug was fixed  within  the  SPACE()  function that
  165.                caused a hang if one non-blank character was used as
  166.                a fill.
  167.  
  168.            -   A  SUBSTR()  function  has  been  added.  This  is a
  169.                superset of the existing substring operator '$'. The
  170.                syntax  is: SUBSTR( string ,start {,length, {pad}} )
  171.                This function returns the sub-string  of  a (string)
  172.                starting at the (start) character within the string,
  173.                up  to  (length)  characters  long.  If  (length) is
  174.                longer  than  the  original  string,  then  a  (pad)
  175.                character is  appended. The default (length) is  the
  176.                size  of the  original  string.  The  default  (pad)
  177.                character  is  a blank. A  synonym  for the SUBSTR()
  178.                function is MID(). Either function name can be used.
  179.  
  180.        *   EBL 4.03
  181.  
  182.            -   Corrected minor bug in DATE(Century) function.
  183.  
  184.            -   Corrected  cursor positioning  bug if READ  was used
  185.                within a WINDOW.
  186.  
  187.            -   Updated  EDIT() to  read keystrokes from  DOS rather
  188.                than BIOS to provide  a system  interface that works
  189.  
  190.  
  191.        Page     3
  192.  
  193.  
  194.                on a wider set of computers.
  195.  
  196.            -   Corrected SELECT() cursor positioning bug if used on
  197.                a slow PC.
  198.  
  199.            -   Updated CHDIR() function to also change  the default
  200.                drive in addition to the current subdirectory.
  201.  
  202.        *   EBL 4.02
  203.  
  204.            -   On  IBM's  101 key  keyboard, the  CHARIN() function
  205.                returned F1 and F2 when  F11  and  F12  was  pressed
  206.                respectively. This has been fixed.
  207.  
  208.            -   A new  /A option ignores DOS  version checking  (use
  209.                with caution).  Must  be  used with /R option as in:
  210.                BAT /A  /R  PROGRAM.BAT  to  startup  the batch file
  211.                named  PROGRAM. This  will  allow  EBL to work under
  212.                many DOS enhancers like PC-MOS and 4DOS.
  213.  
  214.            -   The EBL-Plus  Professional version  of  EBL.BIN  and
  215.                EBL0.BIN are released and match 4.02 in features and
  216.                capabilities. Both can  be  'bound' to  a batch file
  217.                with  DOS's  COPY command, then distributed  royalty
  218.                free.  The  EBL0 version  does  not use or reference
  219.                any resident  memory. By comparison, the EBL version
  220.                has  a small  TSR portion that remains resident just
  221.                like  the  matching BAT.COM.  Please  contact  us at
  222.                1-800-634-8188 if you would like further information
  223.                about the EBL-Plus Professional version.
  224.  
  225.        *   4.01
  226.  
  227.            -   KEY("  ")  function  within  an  expression  returns
  228.                "KEY020" which matches the  INKEY function. Formerly
  229.                it returned " " which was different from INKEY.
  230.  
  231.            -   Recognition of DOS 4.x rather than 4.0
  232.  
  233.            -   RANDOM(  {{min, }  max {,seed}} )  function has been
  234.                added.  The default min  is  0, default  max is 999,
  235.                default seed is random  based  on time.  If only one
  236.                parameter is supplied, it is  a max and the min will
  237.                be  0.  If seed  is not given, seed is random (based
  238.                on  system  time).  If  a  seed  is given,  it  will
  239.                restart a repeatable pseudo random pattern.
  240.  
  241.            -   Correction made  to  DIR(file,R) command so  that it
  242.                will restore properly.
  243.  
  244.            -   TRANSLATE( string {,{to list}{,{from list}{,pad}}} )
  245.                function has been added.  This function translates a
  246.                string to different characters.  If  a  character in
  247.                the string is  found in the input list of characters
  248.                (from),  then   it   will   be  translated   to  the
  249.                corresponding character in the output list (to).  If
  250.                the character is  not found in the input  list, then
  251.                no change is made.  If there are more  characters in
  252.                {from} than {to},  it will be  translated to  a  pad
  253.  
  254.  
  255.        Page     4
  256.  
  257.  
  258.                character.  The  default pad character  is  a blank.
  259.                The default output list is empty (null).  If  only a
  260.                string  is  supplied without  any  lists,  then  the
  261.                string  will  be  translated   to  upper  case.  For
  262.                example:
  263.  
  264.                   TRANSLATE("12/23/56","-","/")    == "12-23-56"
  265.                   TRANSLATE("abcde","HEX","bcd")   == "aHEXe"
  266.                   TRANSLATE("abcde","1","bcd",".") == "a1..e"
  267.  
  268.            -   Correction  made to an  error inadvertently reported
  269.                when an extended BATXV variable was used in a  SHELL
  270.                command.
  271.  
  272.            -   Correction made to duplicate CHDIR() function listed
  273.                in help screen.
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.        Page     5
  320.